home *** CD-ROM | disk | FTP | other *** search
- '
- ' Demo.Bas
- '
- '*****************************************************************************
-
- 'Copyright (c) 1987, 1988 Marcel Madonna
-
- 'DEMO.BAS shows the use of many of the windowing routines available
- ' with QBWARE.
- '
- ' ********************* N O T E *************************
- '
- 'This program cannot be used from the DOS prompt without Microsoft
- 'QuickBasic V4.0 and a registered copy of QBWARE.
- '
- 'To compile it, at the DOS prompt type:
-
- ' bc demo;
- ' link /ex /noe demo,,,brun40 qbware;
- ' del demo.obj
- ' del demo.map
-
- 'To run it from the QuickBasic development environment, type:
- '
- ' qb demo /l qbware
- ' [Shift] + F5
-
- 'To execute demo just type "demo" followed by a file specification at the
- 'DOS prompt'
- '*****************************************************************************
-
- DECLARE SUB DosPLst (BYVAL addr%, Rc%)
- 'Window handles
-
- ' 12 - Selection menus
- ' 13 - Formatted text displays
- ' 14 - Bar Menus
- ' 15 - Miscellaneous unformatted text
-
- OPTION BASE 1
-
- CLS
- LOCATE 1, 1
-
-
- ' We'll check here for the old IBM CGA adapter cards that cause snow
-
- PRINT "Before we get started, I'd like to run a little test."
- PRINT "I will access your video memory for a couple of seconds."
- PRINT " "
- PRINT "Press any key to continue"
- x$ = ""
- WHILE x$ = ""
- x$ = INKEY$
- WEND
-
- Snow% = 1
- Text$ = SPACE$(2000)
- Row% = 1: Col% = 1: Fg% = 0: Bg% = 0
- FOR x% = 1 TO 100
- CALL Putline(Snow%, Text$, Row%, Col%, Fg%, Bg%)
- NEXT
- Text$ = ""
-
- PRINT "Did you see any snow or distortion on the screen?"
- PRINT "Please answer Y or N."
-
- AnsLoop:
- x$ = ""
- WHILE x$ = ""
- x$ = INKEY$
- WEND
- IF x$ = "y" OR x$ = "Y" THEN
- Snow% = 0
- PRINT "I will synchronize video output with horizontal retrace."
- PRINT "This should eliminate the snow but it will slow down the"
- PRINT "program a bit."
- PRINT " "
- PRINT "Press any key to continue"
- x$ = ""
- WHILE x$ = ""
- x$ = INKEY$
- WEND
- ELSEIF x$ <> "n" AND x$ <> "N" THEN
- GOTO AnsLoop
- END IF
-
- ' Dim arrays for QB Syntax check only - we REDIM them later
-
-
- x% = 1
- DIM Text$(x%), MenuText$(x%), Location%(x%, 2), TColors%(x%, 2), TLength%(x%)
- DIM TblData$(x%), TblSlct%(x%), SText$(x%)
-
-
- ' Set up housekeeping for window drivers
-
- DIM MenuList$(6, 5)
- StackSize% = 20000
- DIM WinStack%(StackSize%) 'Window stack - we keep screen images
- 'and other info here
- DIM WinFrame%(20, 5) 'Define maximum number of windows as 20
- 'we keep specific window data here
- GOSUB A1000.Window.Hskp
-
- '
- ' Right here we will display the opening message
- '
-
-
- Escape$ = CHR$(27)
- Head$ = "": WinHandle% = 15
- Tr% = 5: Lc% = 6: Br% = 20: Rc% = 65
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE Open.Msg
- GOSUB A0500.PutText
-
- ' Now let's display the pulldown menu
-
- MenuNum% = 0
- GOSUB Display.PullDown
-
- ' Let's wait for some input and then route it the the proper routine
-
- WaitForInput:
-
- LOCATE , , 0 'Turn the cursor off
- CALL InpWin(WinStack%(), Input.Char$, 0)
- MenuNum% = INSTR(KeyFlds$, Input.Char$)
- IF MenuNum% = 0 OR LEN(Input.Char$) <> 2 THEN
- GOTO WaitForInput
- ELSE
- MenuNum% = INT((MenuNum% / 2) + 1)
- GOTO Display.PullDown
- END IF
- LOCATE , , 1 'Turn the cursor back on
-
-
- Display.PullDown:
-
- Tr% = 1: Fg% = 0: Bg% = 3
-
- 'This call displays the pulldown menu
- CALL PullDown(WinStack%(), WinFrame%(), WinPoint%, MenuList$(), MenuNum%, Tr%, Fg%, Bg%, MFg%, MBg%, RtnMnu%, RtnItm%)
-
- 'This next statement routes the request the the proper routine
- ON RtnMnu% GOSUB QbBios, QbFile, QbDos, QbFunc, QbWindow, Quit
- GOTO WaitForInput
-
-
- QbBios:
-
- ON RtnItm% GOSUB BiosKybd, BiosVideo, BiosDisk, BiosMisc
- RETURN
-
- BiosKybd:
-
- RESTORE BiosKybd.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB BsKGet, BsKStat, BsKClr, BsKNxt, BsKStog, BsKTogH
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- BsKGet:
-
- RESTORE BsKGet.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsKStat:
-
- RESTORE BsKStat.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsKClr:
-
- RESTORE BsKClr.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsKNxt:
-
- RESTORE BsKNxt.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsKStog:
-
- RESTORE BsKSTog.Msg
- GOSUB A0500.PutText
- Tr% = 14: Lc% = 50
- GOSUB A0560.ScrlSlct
- x% = UBOUND(TblSlct%)
- REDIM TempArray%(x%)
- FOR x% = 1 TO UBOUND(TblSlct%)
- IF TblSlct%(x%) THEN
- TempArray%(x%) = 1
- ELSE
- TempArray%(x%) = 0
- END IF
- NEXT
- ERASE TblData$, TblSlct%
- CALL BsKStog(TempArray%(1), TempArray%(2), TempArray%(3), TempArray%(4))
- GOSUB A1020.PopWindow
- RETURN
-
- BsKTogH:
-
- Tr% = 8: Lc% = 12: Br% = 22: Rc% = 75
- RESTORE BsKTogH.Msg
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ <> Escape$
- CALL InpWin(WinStack%(), Input.Char$, 1)
- CALL BsKTogH(Insert%, Caps%, Num%, Scroll%)
- TextLine$ = SPACE$(20)
- IF Insert% = 1 THEN
- MID$(TextLine$, 1) = "Ins"
- END IF
- IF Caps% = 1 THEN
- MID$(TextLine$, 5) = "Cap"
- END IF
- IF Num% = 1 THEN
- MID$(TextLine$, 10) = "Num"
- END IF
- IF Scroll% = 1 THEN
- MID$(TextLine$, 15) = "Scrl"
- END IF
- CALL Putline(Snow%, TextLine$, Br%, Lc% + 5, Fg%, Bg%)
- WEND
-
- GOSUB A1020.PopWindow
- RETURN
-
-
-
-
-
-
- BiosVideo:
-
- RESTORE BiosVideo.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB BsVMode, BsVSCur, BsVsWid, BsVsPos, BsVsPag, BsVScrUp, BsVScrDn, BsVRChr, BsVWChr, BsVWTTY
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
-
- BsVMode:
-
- RESTORE BsVMode.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVSCur:
-
- RESTORE BsVSCur.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVsWid:
-
- RESTORE BsVsWid.Msg
- Tr% = 8: Lc% = 12: Br% = 13: Rc% = 75
- GOSUB A0550.PopFText
-
- CALL BsVsWid(VWidth%)
- TextLine$ = STR$(VWidth%)
- CALL Putline(Snow%, TextLine$, Tr% + 2, Lc% + 8, Fg%, Bg%)
-
- Input.Char$ = ""
-
- WHILE Input.Char$ <> Escape$
- CALL InpWin(WinStack%(), Input.Char$, 1)
- WEND
-
- GOSUB A1020.PopWindow
- RETURN
-
- BsVsPos:
-
- RESTORE BsVsPos.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVsPag:
-
- RESTORE BsVsPag.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVScrUp:
-
- RESTORE BsVScrUp.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVScrDn:
-
- RESTORE BsVScrDn.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVRChr:
-
- RESTORE BsVRChr.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVWChr:
-
- RESTORE BsVWChr.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsVWTTY:
-
- RESTORE BsVWTTY.Msg
- GOSUB A0500.PutText
- RETURN
-
-
- BiosDisk:
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE Disk.Warning
- GOSUB A0500.PutText
-
- RESTORE BiosDisk.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB BsDStat, BsDReset, BsDVrfy, BsDRead, BsDWrit, BsDFmt, BsDAT
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- BsDStat:
-
- RESTORE BsDStat.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsDReset:
-
- RESTORE BsDReset.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsDVrfy:
-
- RESTORE BsDVrfy.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsDRead:
-
- RESTORE BsDRead.Msg
- Tr% = 8: Lc% = 12: Br% = 12: Rc% = 75
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
- IF Input.Char$ <> Escape$ THEN
- Text$ = SPACE$(512)
- CALL BsDRead(Text$, "A", 0, 0, 1, Rc%)
- IF Rc% <> 0 THEN
- GOSUB A0570.Put.DiskMsg
- ELSE
- GOSUB FormatBootDisplay
- Head$ = "Boot Sector - Drive A:": WinHandle% = 15
- Tr% = 4: Lc% = 4: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- GOSUB A0500.PutTextCstm
- END IF
- END IF
- GOSUB A1020.PopWindow
- RETURN
-
- BsDWrit:
-
- RESTORE BsDWrit.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsDFmt:
-
- RESTORE BsDFmt.Msg
- Tr% = 8: Lc% = 12: Br% = 12: Rc% = 75
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
- IF Input.Char$ <> Escape$ THEN
- Text$ = SPACE$(80)
- FOR x% = 1 TO 9
- MID$(Text$, 1 + ((x% - 1) * 4)) = CHR$(39) + CHR$(1) + CHR$(x%) + CHR$(2)
- NEXT
- CALL BsDFmt(Text$, "A", 1, 39, 9, Rc%)
- Text$ = ""
- GOSUB A0570.Put.DiskMsg
- END IF
- GOSUB A1020.PopWindow
- RETURN
-
- BsDAT:
-
- RESTORE BsDAT.Msg
- GOSUB A0500.PutText
- RETURN
-
-
- FormatBootDisplay:
-
- Text.Out$ = SPACE$(1024) 'Initailize output area
- CALL HexStr(Text$, Text.Out$) 'convert this record
- CALL CharXlat(Text$, Xlat.Table$) 'get rid of non-ASCII
-
- Hex.Text% = 1
- Chr.Text% = 1
- Buffer.Count% = 1
- Count% = 22
- REDIM Text$(Count%)
-
- FOR Line.Count% = 1 TO 22 'Max characters on a page
- Text$(Line.Count%) = SPACE$(80) 'Clear output line
-
- FOR Line.Control% = 0 TO 5 'Groups on a line
- MID$(Text$(Line.Count%), (Line.Control% * 8) + Line.Control% + 1, 8) = MID$(Text.Out$, Hex.Text%, 8)
- Hex.Text% = Hex.Text% + 8
- NEXT Line.Control%
-
-
- MID$(Text$(Line.Count%), 55, 24) = MID$(Text$, Chr.Text%, 24)
- Chr.Text% = Chr.Text% + 24
-
- NEXT Line.Count%
- RETURN
-
-
- BiosMisc:
-
- RESTORE BiosMisc.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB BsEqpmt, BsPInit, BsPStat, BsPrint, BsPrtSc
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- BsEqpmt:
-
- RomDate$ = SPACE$(8)
- CALL BsEqpmt(RomDate$, RAM%, ExtRAM%, ExpRAM%, Printers%, RS232%, Floppies%, GamePort%, Disks%)
- RESTORE BsEqpmt.Txt
- GOSUB A0551.LoadText
-
- MID$(Text$(1), LEN(Text$(1)) - 8) = RomDate$
- MID$(Text$(2), LEN(Text$(1)) - 8) = STR$(RAM%) + "K"
- MID$(Text$(3), LEN(Text$(1)) - 8) = STR$(ExtRAM%) + "K"
- MID$(Text$(4), LEN(Text$(1)) - 8) = STR$(ExpRAM% * 16) + "K"
- MID$(Text$(5), LEN(Text$(1)) - 8) = STR$(Printers%)
- MID$(Text$(6), LEN(Text$(1)) - 8) = STR$(RS232%)
- MID$(Text$(7), LEN(Text$(1)) - 8) = STR$(Floppies%)
- MID$(Text$(8), LEN(Text$(1)) - 8) = STR$(GamePort%)
- MID$(Text$(9), LEN(Text$(1)) - 8) = STR$(Disks%)
- Tr% = 14: Lc% = 50: Br% = 23: Rc% = 79
- GOSUB A0550.PopFText.Cstm
-
- RESTORE BsEqpmt.Msg
- Head$ = "": WinHandle% = 15
- Tr% = 2: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- GOSUB A0500.PutText
- GOSUB A1020.PopWindow
- RETURN
-
- BsPInit:
-
- CALL BsPInit(0, 0)
- RESTORE BsPInit.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsPStat:
-
- Tr% = 8: Lc% = 12: Br% = 14: Rc% = 75
- RESTORE BsPStat.Msg
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ <> Escape$
- CALL InpWin(WinStack%(), Input.Char$, 1)
- CALL BsPStat(0, Rc%)
-
- Printer.Ready% = (Rc% AND 128) = 128 '1st bit indicates printer ready
- Acknowledge% = (Rc% AND 64) = 64 '2nd bit indicates Ack
- Out.of.Paper% = (Rc% AND 32) = 32 '3rd bit indicates out of paper
- Selected% = (Rc% AND 16) = 16 '4th bit indicates Selected
- IO.Error% = (Rc% AND 8) = 8 '5th bit indicates I/O Error
- Timeout% = (Rc% AND 1) = 1 '8th bit indicates Timeout
- TextLine$ = SPACE$(50)
-
-
- IF Printer.Ready% THEN
- MID$(TextLine$, 1) = "Ready"
- END IF
-
- IF Acknowledge% THEN
- MID$(TextLine$, 7) = "Ack"
- END IF
-
- IF Out.of.Paper% THEN
- MID$(TextLine$, 11) = "Out of Paper"
- END IF
-
- IF IO.Error% THEN
- MID$(TextLine$, 24) = "Off-Line"
- END IF
-
- IF Timeout% THEN
- MID$(TextLine$, 32) = "Time Out"
- END IF
-
- IF Selected% THEN
- MID$(TextLine$, 44) = "Slct"
- END IF
-
- CALL Putline(Snow%, TextLine$, Br%, Lc% + 5, Fg%, Bg%)
- WEND
-
- GOSUB A1020.PopWindow
- RETURN
-
- BsPrint:
-
- RESTORE BsPrint.Msg
- GOSUB A0500.PutText
- RETURN
-
- BsPrtSc:
-
- RESTORE BsPrtSc.Msg
- Tr% = 8: Lc% = 12: Br% = 14: Rc% = 75
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
- IF Input.Char$ <> Escape$ THEN
- CALL BsPrtSc
- END IF
- GOSUB A1020.PopWindow
- RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- QbFile:
-
- ON RtnItm% GOSUB AFileAttr, FileFunc, FileRepl
- RETURN
-
- AFileAttr:
-
- RESTORE FileAttr.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB FlGTim, FlGDat, FlGVol, FlPDat, FlPVol, FlAttr
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- FlGTim:
-
- RESTORE FlGTim.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlGDat:
-
- RESTORE FlGDat.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlGVol:
-
- RESTORE FlGVol.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlPDat:
-
- RESTORE FlPDat.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlPVol:
-
- RESTORE FlPVol.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlAttr:
-
- RESTORE FlAttr.Msg
- GOSUB A0500.PutText
- RETURN
-
- FileFunc:
-
- RESTORE FileFunc.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB FlOpen, FlClos, FlRead, FlWrit, FlPoint, FlCreat, FlDelete, FlRSect, FlWSect
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- FlOpen:
-
- RESTORE FlOpen.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlClos:
-
- RESTORE FlClos.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlRead:
-
- RESTORE FlRead.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlWrit:
-
- RESTORE FlWrit.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlPoint:
-
- RESTORE FlPoint.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlCreat:
-
- RESTORE FlCreat.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlDelete:
-
- RESTORE FlDelete.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlRSect:
-
- RESTORE FlRSect.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlWSect:
-
- RESTORE FlWSect.Msg
- GOSUB A0500.PutText
- RETURN
-
-
- FileRepl:
-
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE FlFile.Msg
- GOSUB A0500.PutText
- RESTORE FileRepl.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB FlFind, FlCnt, FlMove, FlCopy, FlSDrv, FlGDrv, FlCDir, FlGDir, FlMDir, FlDDir, FlDStat
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- FlFind:
-
- RESTORE FlFind.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlCnt:
-
- RESTORE FlCnt.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlMove:
-
- RESTORE FlMove.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlCopy:
-
- RESTORE FlCopy.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlSDrv:
-
- RESTORE FlSDrv.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlGDrv:
-
- RESTORE FlGDrv.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlCDir:
-
- RESTORE FlCDir.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlGDir:
-
- RESTORE FlGDir.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlMDir:
-
- RESTORE FlMDir.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlDDir:
-
- RESTORE FlDDir.Msg
- GOSUB A0500.PutText
- RETURN
-
- FlDStat:
-
- RESTORE FlDStat.Msg
- GOSUB A0500.PutText
- RETURN
-
-
-
-
-
-
-
-
-
-
-
-
- QbDos:
-
- ON RtnItm% GOSUB DosSpool, DosAllc, DosMisc
- RETURN
-
- DosSpool:
- RESTORE DosSpool.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB DosPStat, DosPCan, DosPDel, DosPLst, DosPSub
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- DosPStat:
-
- RESTORE DosPStat.Msg
- Tr% = 8: Lc% = 12: Br% = 14: Rc% = 75
- GOSUB A0550.PopFText
-
- CALL DosPStat(Rc%)
- IF Rc% = 2 THEN
- Text$ = "Spooler Inactive"
- ELSEIF Rc% = 0 THEN
- Text$ = "Spooler Active"
- ELSE
- GOSUB DosSpoolError
- END IF
- GOSUB DosSpoolStatDisplay
-
- GOSUB A1020.PopWindow
- RETURN
-
- DosPCan:
-
- RESTORE DosPCan.Msg
- Tr% = 8: Lc% = 12: Br% = 12: Rc% = 75
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
- IF Input.Char$ <> Escape$ THEN
- CALL DosPCan(Rc%)
- END IF
- GOSUB DosSpoolError
- GOSUB DosSpoolStatDisplay
- GOSUB A1020.PopWindow
- RETURN
-
- DosPDel:
- RESTORE DosPDel.Msg
- GOSUB A0500.PutText
-
- GOSUB DosGetQueue
- IF Rc% <> 0 THEN
- GOSUB DosSpoolError
- GOSUB DosSpoolStatDisplay
- RETURN
- END IF
-
- x% = 1
- WHILE LEFT$(SText$(x%), 1) <> CHR$(0) AND x% < Count%
- x% = x% + 1
- WEND
- x% = x% - 1
-
- IF x% < 1 THEN
- Text$ = "Queue Empty"
- GOSUB DosSpoolStatDisplay
- RETURN
- END IF
-
- REDIM TblData$(x%), TblSlct%(x%)
- FOR x% = 1 TO UBOUND(TblData$)
- y% = INSTR(SText$(x%), CHR$(0))
- TblData$(x%) = LEFT$(SText$(x%), y%)
- NEXT
-
- Tr% = 14: Lc% = 5
- GOSUB A0560.ScrlSlct.Cstm
-
- Rc% = 0: x% = 1
- WHILE Rc% = 0 AND x% <= UBOUND(TblData$)
- IF TblSlct%(x%) THEN
- CALL DosPDel(TblData$(x%), Rc%)
- END IF
- x% = x% + 1
- WEND
- ERASE TblData$, TblSlct%
-
- GOSUB DosSpoolError
- GOSUB DosSpoolStatDisplay
-
- ERASE SText$
- GOSUB A1020.PopWindow
- RETURN
-
- DosPLst:
-
- RESTORE DosPLst.Msg
- Tr% = 8: Lc% = 11: Br% = 12: Rc% = 75
- GOSUB A0550.PopFText
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
-
- GOSUB DosGetQueue
- IF Rc% <> 0 THEN GOTO DosPLstError
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
-
- x% = 1
- WHILE LEFT$(SText$(x%), 1) <> CHR$(0) AND x% < Count%
- x% = x% + 1
- WEND
- x% = x% - 1
-
- IF x% < 1 THEN
- Text$ = "Queue Empty"
- GOTO DosQueueEmpty
- END IF
-
- REDIM Text$(x%)
- LineWidth% = 0
- FOR x% = 1 TO UBOUND(Text$)
- Text$(x%) = SText$(x%)
- IF LEN(Text$(x%)) > LineWidth% THEN
- LineWidth% = LEN(Text$(x%))
- END IF
- NEXT
-
- IF x% < Br% - Tr% THEN
- Br% = Tr% + x%
- END IF
- IF LineWidth% < Rc% - Lc% THEN
- Rc% = Lc% + LineWidth%
- END IF
-
- GOSUB A0500.PutTextCstm
- GOTO DosPLstExit
-
-
- DosPLstError:
- GOSUB DosSpoolError
-
- DosQueueEmpty:
- GOSUB DosSpoolStatDisplay
-
- DosPLstExit:
- ERASE SText$
- GOSUB A1020.PopWindow
- RETURN
-
-
- DosPSub:
-
- RESTORE DosPSub.Msg
- Tr% = 8: Lc% = 11: Br% = 12: Rc% = 75
- GOSUB A0550.PopFText
-
- ExtendName% = -1
- GOSUB A0590.GetDataSet
-
- IF LastChar$ = CHR$(27) THEN GOTO DosPSubExit
-
- CALL XVerify(InputText$, " ", x%)
- FileNm$ = MID$(InputText$, 1, x% + 1)
- MID$(FileNm$, x% + 1) = CHR$(0)
- CALL DosPSub(FileNm$, Rc%)
- GOSUB DosSpoolError
- GOSUB DosSpoolStatDisplay
-
- DosPSubExit:
-
- GOSUB A1020.PopWindow
- GOSUB A1020.PopWindow
- RETURN
-
- DosSpoolError:
- IF Rc% = 0 THEN
- Text$ = "Completed successfully"
- ELSEIF Rc% = 1 THEN
- Text$ = "Spooler Inactive"
- ELSEIF Rc% = 2 THEN
- Text$ = "File not found"
- ELSEIF Rc% = 3 THEN
- Text$ = "Path not found"
- ELSEIF Rc% = 4 THEN
- Text$ = "Too many open files"
- ELSEIF Rc% = 5 THEN
- Text$ = "Access denied"
- ELSEIF Rc% = 8 THEN
- Text$ = "Queue full"
- ELSEIF Rc% = 9 THEN
- Text$ = "Spooler busy"
- ELSEIF Rc% = 12 THEN
- Text$ = "Name too long"
- ELSEIF Rc% = 15 THEN
- Text$ = "Invalid drive"
- ELSEIF Rc% = 255 THEN
- Text$ = "Invalid DOS version - DOS 3.00 or higher is needed."
- END IF
- RETURN
-
-
- DosSpoolStatDisplay:
-
- Lc% = 10: Tr% = 20
- GOSUB A0580.PopField
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
-
- GOSUB A1020.PopWindow
- RETURN
-
- DosGetQueue:
-
- Count% = 33
- REDIM SText$(Count%)
- FOR x% = 1 TO Count%
- SText$(x%) = SPACE$(65)
- NEXT
-
- CALL DosPLst(VARPTR(SText$(1)), Rc%)
- RETURN
-
-
-
-
- DosAllc:
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE DosAllcT.Msg
- GOSUB A0500.PutText
- RESTORE DosAllc.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB DosMAllc, DosMFree, DosMGet, DosMPut
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- DosMAllc:
-
- RESTORE DosMAllc.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosMFree:
-
- RESTORE DosMFree.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosMGet:
-
- RESTORE DosMGet.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosMPut:
-
- RESTORE DosMPut.Msg
- GOSUB A0500.PutText
- RETURN
-
-
-
- DosMisc:
- RESTORE DosMisc.Msg
- GOSUB A0600.BarMenu1
- WHILE Answer% <> 0
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 12: Br% = 20: Rc% = 72
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- ON Answer% GOSUB DosPStat, DosPCan, DosPDel, DosPLst, DosPSub
- ON Answer% GOSUB Boot, DosChOut, DosChrIn, DosStrIn, DosRed, DosPrSc, DosVer, DosVrfy
- GOSUB A0601.BarMenu1
- WEND
- GOSUB A1020.PopWindow
- RETURN
-
- Boot:
-
- RESTORE Boot.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosChOut:
-
- RESTORE DosChOut.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosChrIn:
-
- RESTORE DosChrIn.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosStrIn:
-
- RESTORE DosStrIn.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosRed:
-
- RESTORE DosRed.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosPrSc:
-
- RESTORE DosPrSc.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosVer:
-
- RESTORE DosVer.Msg
- GOSUB A0500.PutText
- RETURN
-
- DosVrfy:
-
- RESTORE DosVrfy.Msg
- GOSUB A0500.PutText
- RETURN
-
-
-
- QbFunc:
-
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 4: Br% = 20: Rc% = 75
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE AvailMsg
- GOSUB A0500.PutText
- ON RtnItm% GOSUB StrFunc, SortFunc, DateFunc, MiscFunc
- RETURN
-
- StrFunc:
-
- RESTORE StrFunc.Msg
- GOSUB A0500.PutText
- RETURN
-
- SortFunc:
-
- RESTORE SortFunc.Msg
- GOSUB A0500.PutText
- RETURN
-
- DateFunc:
-
- RESTORE DateFunc.Msg
- GOSUB A0500.PutText
- RETURN
-
- MiscFunc:
-
- RESTORE MiscFunc.Msg
- GOSUB A0500.PutText
- RETURN
-
-
- QbWindow:
-
- Head$ = "": WinHandle% = 15
- Tr% = 8: Lc% = 4: Br% = 20: Rc% = 75
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE AvailMsg
- GOSUB A0500.PutText
- ON RtnItm% GOSUB WinPrim, WinHigh, WinInput, WinMenus
- RETURN
-
- WinPrim:
-
- RESTORE WinPrim.Msg
- GOSUB A0500.PutText
- RETURN
-
- WinHigh:
-
- RESTORE WinHigh.Msg
- GOSUB A0500.PutText
- RETURN
-
- WinInput:
-
- RESTORE WinInput.Msg
- GOSUB A0500.PutText
- RETURN
-
- WinMenus:
-
- RESTORE WinMenus.Msg
- GOSUB A0500.PutText
- RETURN
-
-
-
-
- Quit:
-
-
- Head$ = "": WinHandle% = 15
- Tr% = 5: Lc% = 6: Br% = 20: Rc% = 50
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- RESTORE Close.Msg
- GOSUB A0500.PutText
-
- CLS
- END
-
- A0500.PutText:
-
- GOSUB A0510.LoadText
- IF x% < Br% - Tr% THEN
- Br% = Tr% + x% - 1
- END IF
-
- A0500.PutTextCstm:
- GOSUB A1010.Prep.Window
- CALL PopText(Win.Handle%, WinStack%(), WinFrame%(), WinPoint%, Text$())
- ERASE Text$
- GOSUB A1020.PopWindow
- RETURN
-
- A0510.LoadText:
-
- READ Count%
- REDIM Text$(Count%)
- x% = 1
- READ Text$(1)
- WHILE Text$(x%) <> "EOM" AND x% <= Count%
- x% = x% + 1
- READ Text$(x%)
- WEND
- Text$(x%) = ""
- RETURN
-
- A0511.LoadText:
-
- READ Count%
- REDIM MenuText$(Count%)
- x% = 1
- READ MenuText$(1)
- WHILE MenuText$(x%) <> "EOM" AND x% <= Count%
- x% = x% + 1
- READ MenuText$(x%)
- WEND
- MenuText$(x%) = ""
- RETURN
-
- A0550.PopFText:
-
- Head$ = "": WinHandle% = 13
- Frame% = 2: Fg% = 15: Bg% = 4: Grow% = 0: Shade% = 1
- GOSUB A0551.LoadText
- A0550.PopFText.Cstm:
- GOSUB A1010.Prep.Window
- CALL PopFText(WinHandle%, WinStack%(), WinFrame%(), WinPoint%, Location%(), TLength%(), TColors%(), Text$())
- ERASE Text$, Location%, TColors%, TLength%
- RETURN
-
- A0551.LoadText:
-
- READ Count%
- REDIM Text$(Count%), Location%(Count%, 2), TColors%(Count%, 2), TLength%(Count%)
- x% = 1
- READ Text$(1)
- WHILE Text$(x%) <> "EOM" AND x% <= Count%
- TLength%(x%) = LEN(Text$(x%))
- READ Location%(x%, 1)
- READ Location%(x%, 2)
- READ TColors%(x%, 1)
- READ TColors%(x%, 2)
- x% = x% + 1
- READ Text$(x%)
- WEND
- Text$(x%) = ""
- RETURN
-
- A0560.ScrlSlct:
-
- GOSUB A0561.LoadText
-
- A0560.ScrlSlct.Cstm:
-
- LineWidth% = 0
- Height% = 0
- FOR x% = 1 TO UBOUND(TblData$)
- IF LEN(TblData$(x%)) > 0 THEN
- Height% = Height% + 1
- IF LEN(TblData$(x%)) > LineWidth% THEN
- LineWidth% = LEN(TblData$(x%))
- END IF
- END IF
- NEXT
-
- WinHandle% = 12
- Br% = Tr% + Height% - 1: Rc% = Lc% + LineWidth% + 1: Fg% = 0: Bg% = 6
- IF Br% > 23 THEN Br% = 23
- GOSUB A1010.Prep.Window
-
- CALL ScrlSlct(WinHandle%, WinStack%(), WinFrame%(), WinPoint%, TblData$(), TblSlct%())
- RETURN
-
- A0561.LoadText:
-
- READ Count%
- REDIM TblData$(Count%), TblSlct%(Count%)
- x% = 1
- READ TblData$(1)
- WHILE TblData$(x%) <> "EOM" AND x% <= Count%
- x% = x% + 1
- READ TblData$(x%)
- WEND
- TblData$(x%) = ""
- RETURN
-
-
- A0570.Put.DiskMsg:
-
- IF Rc% = 0 THEN
- Text$ = "Completed successfully"
- ELSE
- Text$ = "Function was not completed"
- END IF
-
- Lc% = 10: Tr% = 20
- GOSUB A0580.PopField
-
- Input.Char$ = ""
-
- WHILE Input.Char$ = ""
- CALL InpWin(WinStack%(), Input.Char$, 0)
- WEND
-
- GOSUB A1020.PopWindow
- RETURN
-
- A0580.PopField:
-
- Count% = 1
- REDIM Text$(Count%), Location%(Count%, 2), TColors%(Count%, 2), TLength%(Count%)
-
- Head$ = "": WinHandle% = 12
- Frame% = 2: Fg% = 15: Bg% = 0: Grow% = 0: Shade% = 0
-
- Text$(1) = Text$: TLength%(1) = LEN(Text$)
- Location%(1, 2) = 1
- Br% = Tr%: Rc% = Lc% + LEN(Text$) + 1
-
- GOSUB A1010.Prep.Window
- CALL PopFText(WinHandle%, WinStack%(), WinFrame%(), WinPoint%, Location%(), TLength%(), TColors%(), Text$())
- ERASE Text$, Location%, TColors%, TLength%
- RETURN
-
- A0590.GetDataSet:
-
- Head$ = "Enter file to print": WinHandle% = 10
- Tr% = Tr% + 5: Br% = Tr%: Lc% = 5: Rc% = 73
- Frame% = 2: Fg% = 15: Bg% = 1: Grow% = 0: Shade% = 1
- GOSUB A1010.Prep.Window
- Row% = 1: Col% = 4: InitialValue$ = "": ExitList$ = CHR$(27)
- IF ExtendName% THEN
- Pic$ = "U:\UXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- ELSE
- Pic$ = "UXXXXXXX.UXX"
- END IF
- Fg% = 7: Bg% = 1
- CALL InChar(WinHandle%, WinStack%(), WinFrame%(), Row%, Col%, Fg%, Bg%, Pic$, InitialValue$, ExitList$, InputText$, LastChar$)
- RETURN
-
- A0600.BarMenu1:
-
- GOSUB A0511.LoadText
- LineWidth% = 0
- Height% = 0
- FOR x% = 1 TO UBOUND(MenuText$)
- IF LEN(MenuText$(x%)) > 0 THEN
- Height% = Height% + 1
- IF LEN(MenuText$(x%)) > LineWidth% THEN
- LineWidth% = LEN(MenuText$(x%))
- END IF
- END IF
- NEXT
-
- WinHandle% = 14
- Tr% = 5: Lc% = 6: Br% = Tr% + Height% - 1: Rc% = Lc% + LineWidth% + 1: Fg% = 0: Bg% = 3
- GOSUB A1010.Prep.Window
-
- A0601.BarMenu1:
- CALL BarMenu1(WinHandle%, WinStack%(), WinFrame%(), WinPoint%, MenuText$(), Answer%)
- RETURN
-
- A1000.Window.Hskp:
-
- RESTORE MainMenu.Data
- FOR x% = 1 TO UBOUND(MenuList$, 2)
- FOR y% = 1 TO UBOUND(MenuList$, 1)
- READ MenuList$(y%, x%)
- NEXT y%
- NEXT x%
-
- KeyFlds$ = CHR$(0) + CHR$(48) + CHR$(0) + CHR$(33) + CHR$(0) + CHR$(32) + CHR$(0) + CHR$(33) + CHR$(0) + CHR$(17) + CHR$(0) + CHR$(16)
-
- Text$ = STRING$(2000, CHR$(176))
- Row% = 1: Col% = 1: Fg% = 7: Bg% = 2
- CALL Putline(Snow%, Text$, Row%, Col%, Fg%, Bg%)
- Text$ = ""
-
- MFg% = 15: MBg% = 0
- MaxWin% = 20
- ExitKeys$ = CHR$(27)
- TabLen% = 8
- SBar% = 1: SRow% = 25: SFg% = 15: Sbg% = 1
-
- CALL InitWin(WinStack%(), WinFrame%(), WinPoint%, MaxWin%, ExitKeys$, TabLen%, SBar%, SRow%, SFg%, Sbg%, Snow%)
- RETURN
-
- A1010.Prep.Window:
-
- CALL CngWin(WinHandle%, WinStack%(), Tr%, Lc%, Br%, Rc%, Frame%, Fg%, Bg%, Grow%, Shade%)
-
- CALL PushWin(WinHandle%, WinStack%(), WinFrame%(), WinPoint%)
- CALL Putwind(WinHandle%, WinStack%(), Head$)
- RETURN
-
- A1020.PopWindow:
-
- CALL PopWin(WinStack%(), WinFrame%(), WinPoint%)
- RETURN
-
- Open.Msg:
- DATA 80
- DATA " Welcome to the QBWARE Version 1.2 demo."
- DATA " "
- DATA " This demo was written using QB V4 and the QBWARE"
- DATA " utility libraries. Before you get started, just a"
- DATA " couple of hints. The main screen will look a little"
- DATA " like the QB editor. It works like it also. To see"
- DATA " a specific demo, press Alt and the corresponding"
- DATA " letter. For example, press Alt+B to see the BIOS"
- DATA " demo. A pulldown menu will appear and you can choose"
- DATA " a specific demo. Much of the information presented"
- DATA " here will appear in windows. When you see the words"
- DATA " [More..] or [End...] at the bottom of the window, you"
- DATA " can use the normal cursor control keys to move around"
- DATA " the window."
- DATA " "
- DATA " Press [PgDn] now"
- DATA " "
- DATA " This includes:"
- DATA " [PgUp]"
- DATA " [PgDn]"
- DATA " [Home]"
- DATA " [End]"
- DATA " [Tab]"
- DATA " [UpArrow]"
- DATA " [DnArrow]"
- DATA " [LeftArrow]"
- DATA " [RightArrow]"
- DATA " [Escape]"
- DATA ""
- DATA " If you ever get into trouble, just press"
- DATA " Escape ([Esc]) - that generally closes the window."
- DATA ""
- DATA " Many of the windows shown during this demo will"
- DATA " to be missing some text at the right-hand edge of"
- DATA " window. Just press [RightArrow] and you'll see the"
- DATA " rest of the line. Try it now."
- DATA ""
- DATA " This is an extra long line to demonstrate right and left scrolling as handled by QBWARE."
- DATA ""
- DATA " This demo brought to you by AJM Software."
- DATA " If you have any questions, leave me a note on"
- DATA " CompuServe or Genie."
- DATA ""
- DATA " Marcel Madonna CompuServe 76267,416"
- DATA " Genie M.D.MADONNA"
- DATA ""
- DATA " Press [Esc] to continue ....."
- DATA "EOM"
-
- Close.Msg:
- DATA 16
- DATA " Thanks for viewing the demo."
- DATA " Current versions of all of the"
- DATA " QBWARE libraries are always"
- DATA " available on CompuServe or GENIE"
- DATA " or from:"
- DATA " "
- DATA " AJM Software"
- DATA " P.O. Box 5303"
- DATA " Arvada, Co. 8005-0303"
- DATA ""
- DATA " Please use the ordering form in"
- DATA " REGISTER.TXT when ordering direct"
- DATA " from AJM Software."
- DATA " Marcel Madonna CompuServe 76267,416"
- DATA " Genie M.D.MADONNA"
- DATA "EOM"
-
-
- BiosMisc.Msg:
- DATA 6
- DATA "BSEQPMT - Get installed equipment"
- DATA "BSPINIT - Initialize printer"
- DATA "BSPSTAT - Get printer status"
- DATA "BSPRINT - Print a string of characters"
- DATA "BSPRTSC - Print screen"
- DATA "EOM"
-
-
- BiosDisk.Msg:
- DATA 8
- DATA "BSDSTAT - Get diskette controller status"
- DATA "BSDRESET - Reset floppy disk controller"
- DATA "BSDVRFY - Verify sectors on a diskette"
- DATA "BSDREAD - Read a sector from a diskette"
- DATA "BSDWRIT - Write a sector to diskette"
- DATA "BSDFMT - Format a track on a diskette"
- DATA "AT Disk Services"
- DATA "EOM"
-
-
- BiosVideo.Msg:
- DATA 12
- DATA "BSVMODE - Get or set video mode"
- DATA "BSVSCUR - Set or get cursor size"
- DATA "BSVSWID - Get screen width"
- DATA "BSVSPOS - Get or set cursor position"
- DATA "BSVSPAG - Get or set video display page"
- DATA "BSVSCRUP - Scroll up or clear a window"
- DATA "BSVSCRDN - Scroll down or clear a window"
- DATA "BSVRCHR - Read a character and attribute from the screen"
- DATA "BSVWCHR - Write a character to the screen"
- DATA "BSVWTTY - Write in teletype mode"
- DATA "EOM"
-
- BiosKybd.Msg:
- DATA 7
- DATA "BSKGET - Get a character from the keyboard"
- DATA "BSKSTAT - Determine the status of the toggle keys"
- DATA "BSKCLR - Clear the keyboard buffer"
- DATA "BSKNXT - Preview the keyboard buffer"
- DATA "BSKSTOG - Set keyboard toggles"
- DATA "BSKTOGH - Determine whether toggle keys are pressed"
- DATA "EOM"
-
- DosSpool.Msg:
- DATA 6
- DATA "DOSPSTAT - Request spooler status"
- DATA "DOSPCAN - Cancel all spooled files"
- DATA "DOSPDEL - Delete a file from the queue"
- DATA "DOSPLST - List all files in the queue"
- DATA "DOSPSUB - Submit a file to the queue"
- DATA "EOM"
-
-
- DosAllc.Msg:
- DATA 5
- DATA "DOSMALLC - Allocate additional memory"
- DATA "DOSMFREE - Free memory"
- DATA "DOSMGET - Get some data from allocated memory"
- DATA "DOSMPUT - Put some data in allocated memory"
- DATA "EOM"
-
- DosMisc.Msg:
- DATA 9
- DATA "BOOT - Initiate a cold or warm boot"
- DATA "DOSCHOUT - Write a string to the standard output device"
- DATA "DOSCHRIN - Read a character from the standard input device"
- DATA "DOSSTRIN - Read a string from the standard input device"
- DATA "DOSRED - Redirect a DOS standard handle"
- DATA "DOSPRSC - Print the screen"
- DATA "DOSVER - Get the DOS version"
- DATA "DOSVRFY - Turn verify mode on and off"
- DATA "EOM"
-
- FileAttr.Msg:
- DATA 12
- DATA "FLGTIM - Get file creation time"
- DATA "FLGDAT - Get file creation date"
- DATA "FLGVOL - Get volume label"
- DATA "FLPDAT - Change file creation date and time"
- DATA "FLPVOL - Change volume label"
- DATA "FLATTR - Change file attributes"
- DATA "EOM"
-
- FileFunc.Msg:
- DATA 12
- DATA "FLOPEN - Open a file"
- DATA "FLCLOS - Close a file"
- DATA "FLREAD - Read a record from a file"
- DATA "FLWRIT - Write a record to a file"
- DATA "FLPOINT - Point to a specific record in a file"
- DATA "FLCREAT - Create a file"
- DATA "FLDELETE - Delete a file"
- DATA "FLRSECT - Read a sector"
- DATA "FLWSECT - Write a sector"
- DATA "EOM"
-
- FileRepl.Msg:
- DATA 12
- DATA "FLFIND - Find a file or group of files"
- DATA "FLCNT - Count the number of matching files"
- DATA "FLMOVE - Move a file"
- DATA "FLCOPY - Copy a file to another file"
- DATA "FLSDRV - Set the current drive"
- DATA "FLGDRV - Get the current drive"
- DATA "FLCDIR - Change the current directory"
- DATA "FLGDIR - Get the current directory"
- DATA "FLMDIR - Make a directory"
- DATA "FLDDIR - Delete a directory"
- DATA "FLDSTAT - Retrieve disk statistics"
- DATA "EOM"
-
- BsKGet.Msg:
- DATA 20
- DATA "BsKGet is useful when you need to know exactly which key"
- DATA "was pressed. It provides your program with the scan code"
- DATA "of the key that was pressed. For example, this service"
- DATA "enables you to tell whether the '1' on the numeric keypad"
- DATA "was pressed or '1' above the 'Q' was pressed."
- DATA "EOM"
-
- BsKStat.Msg:
- DATA 40
- DATA "BsKStat can tell you the status of the various toggle"
- DATA "switches on your keyboard. The situations detected are:"
- DATA ""
- DATA " Insert"
- DATA " CapsLock"
- DATA " NumLock"
- DATA " ScrollLock"
- DATA " Alt key depressed"
- DATA " Ctrl key depressed"
- DATA " Left Shift depressed"
- DATA " Right Shift depressed"
- DATA ""
- DATA "You can press any of these keys right now and watch the"
- DATA "status bar at the bottom of the screen. It will reflect"
- DATA "the current status of these keys."
- DATA ""
- DATA "A special note for users of the enhanced keyboard. Pressing"
- DATA "the [Pause] key will cause the Ctrl toggle to display, and"
- DATA "using any of the new arrow keys or the new [Insert],[Delete],"
- DATA "[Home], [End], [PgUp], [PgDn] keys will cause the LShft"
- DATA "toggle to display if [Num Lock] is on."
- DATA "EOM"
-
- BsKClr.Msg:
- DATA 5
- DATA "BsKClr will quickly clear the keyboard buffer. This service"
- DATA "is useful when an error condition is detected or after a report"
- DATA "has printed. In both of these circumstances, the buffer should"
- DATA "be cleared of any keystrokes."
- DATA "EOM"
-
- BsKNxt.Msg:
- DATA 6
- DATA "BsKNxt will check the keyboard buffer to determine if a"
- DATA "key has been depressed. It either returns the value of"
- DATA "key that was entered or let's you know that no key was"
- DATA "entered. It is generally used in conjunction with"
- DATA "BsKGet to provide total control of keyboard entry."
- DATA "EOM"
-
- BsKSTog.Msg:
- DATA 6
- DATA "BsKSTog will turn the toggle keys on or off. When you press"
- DATA "[Esc], a list of keys to toggle will appear. Position the bar"
- DATA "over your choices and press [Enter]. When you have made all of"
- DATA "your choices, press [Esc] again and I will turn on any keys that"
- DATA "you selected."
- DATA "EOM"
- DATA 5
- DATA "Insert"
- DATA "Caps Lock"
- DATA "Num Lock"
- DATA "Scroll Lock"
- DATA "EOM"
-
- BsKTogH.Msg:
- DATA 13
- DATA "BsKTogH will tell you if the toggle keys are pressed. The",1,1,0,0
- DATA "keys that it monitors are:",2,1,0,0
- DATA " [Insert]",3,1,0,0
- DATA " [Caps Lock]",4,1,0,0
- DATA " [Num Lock]",5,1,0,0
- DATA " [Scroll Lock]",6,1,0,0
- DATA " ",7,1,0,0
- DATA "This service differs from BsKStat because it tells you",8,1,0,0
- DATA "if someone is physically holding one of these keys down.",9,1,0,0
- DATA "Press any of them now and I'll show you what's being",10,1,0,0
- DATA "detected. Press [Esc] when you're done.",11,1,0,0
- DATA "EOM"
-
- BsVMode.Msg:
- DATA 20
- DATA "BsVMode will get or set the video mode currently in use."
- DATA "This function has limited application because it makes"
- DATA "your program hardware independent. Not all cards support"
- DATA "all video modes. For example, if you have a monochrome"
- DATA "monitor, mode 7 is the only one supported. Download"
- DATA "QBWARE.ARC and review the documentation for more info on"
- DATA "Video modes."
- DATA "EOM"
-
- BsVSCur.Msg:
- DATA 6
- DATA "BsVSCur allows to get or set the cursor size. When using"
- DATA "this function, all video Input/Output should be done"
- DATA "without using Basic commands."
- DATA "EOM"
-
- BsVsWid.Msg:
- DATA 3
- DATA "BsVsWid returns the width of the screen. Right now we can",1,1,0,0
- DATA "display characters across your screen.",2,1,0,0
- DATA "EOM"
-
- BsVsPos.Msg:
- DATA 6
- DATA "BsVsPos allows you to get or set the current cursor position."
- DATA "As with BsVSCur, you should not use any Basic commands to"
- DATA "perform Input/Output to the monitor when using this service."
- DATA "EOM"
-
- BsVsPag.Msg:
- DATA 20
- DATA "BsVPag will get or set the current video page in use."
- DATA "This function has limited application because it makes"
- DATA "your program hardware independent. Not all cards support"
- DATA "the same number of pages. For example, if you have a"
- DATA "MDA card, only page 1 is valid. Download"
- DATA "QBWARE.ARC and review the documentation for more info on"
- DATA "Video pages."
- DATA "EOM"
-
- BsVScrUp.Msg:
- DATA 6
- DATA "BsVScrUp allows you to scroll data on the monitor up"
- DATA "a fixed number of lines. You can do this for the entire"
- DATA "screen or just a portion of it. "
- DATA "EOM"
-
- BsVScrDn.Msg:
- DATA 6
- DATA "BsVScrDn allows you to scroll data on the monitor down"
- DATA "a fixed number of lines. You can do this for the entire"
- DATA "screen or just a portion of it. "
- DATA "EOM"
-
- BsVRChr.Msg:
- DATA 6
- DATA "BsVRChr will read a character from the video buffer. You"
- DATA "specify the coordinates and this service will return the "
- DATA "character and it's attribute."
- DATA "EOM"
-
- BsVWChr.Msg:
- DATA 6
- DATA "BsVWChr will write a character to the video buffer. It bypasses"
- DATA "the normal DOS print routines and therefore is quicker than a"
- DATA "BASIC PRINT statement."
- DATA "EOM"
-
- BsVWTTY.Msg:
- DATA 6
- DATA "BsVWTTY allows you to write to the screen in teletype mode. This"
- DATA "service is useful for dumping ASCII files to the screen. DOS"
- DATA "uses this service to write text to the screen."
- DATA "EOM"
-
- Disk.Warning:
- DATA 20
- DATA ""
- DATA " ****** WARNING ******"
- DATA ""
- DATA ""
- DATA "This demo will work only with a disk in Drive A: and some"
- DATA "functions will destroy data on your disk. Please use a "
- DATA "formatted disk that does not contain any data that you need."
- DATA ""
- DATA " Press [Esc] to continue"
- DATA ""
- DATA ""
- DATA " ****** WARNING ******"
- DATA ""
- DATA "EOM"
-
- BsDStat.Msg:
- DATA 6
- DATA "BsDStat allows you to retrieve the return code of the last"
- DATA "disk operation."
- DATA "EOM"
-
- BsDReset.Msg:
- DATA 6
- DATA "BsDReset will simply reset the floppy disk controller. This"
- DATA "flushes all data buffers."
- DATA "EOM"
-
- BsDVrfy.Msg:
- DATA 6
- DATA "BsDVrfy will cause a specific sector to be read and insure"
- DATA "that the sector passes the CRC check."
- DATA "EOM"
-
- BsDRead.Msg:
- DATA 6
- DATA "BsDRead will allow you to read a sector without going thru",1,1,0,0
- DATA "DOS. If you press [Esc], I'll return to the menu - any ",2,1,0,0
- DATA "other key and I'll show you the boot record from Drive A.",3,1,0,0
- DATA "EOM"
-
- BsDWrit.Msg:
- DATA 6
- DATA "BsDWrit will allow you to write a sector without going thru"
- DATA "DOS. I won't actually write any sectors because this function,"
- DATA "if not used properly, can screw up a disk pretty quickly."
- DATA "EOM"
-
- BsDFmt.Msg:
- DATA 6
- DATA "BsDFmt will format a track on a hard disk or diskette. Press",1,1,0,0
- DATA "[Esc] and I'll return you to the menu - any other key and I'll",2,1,0,0
- DATA "format track 39, head 1, of the diskette in drive A.",3,1,0,0
- DATA "EOM"
-
- BsDAT.Msg:
- DATA 50
- DATA "The AT disk services were added to the AT's ROM-BIOS to provide"
- DATA "added function for hard disks and the 1.2Mb diskette drive."
- DATA "These functions are available only on an AT and therefore will"
- DATA "not be demonstrated here. The services are:"
- DATA " "
- DATA " BsDAPArm - This service returns the number of Sectors, Cylinders,"
- DATA " and Heads on your hard drive."
- DATA " "
- DATA " BsDATst - This service will test for drive ready - hard disk only."
- DATA " "
- DATA " BsDaRst - This is the alternate disk reset service intended for hard"
- DATA " disks only."
- DATA " "
- DATA " BsDaRcl - This service will Recalibrate your hard drive."
- DATA " "
- DATA " BsDADiag - This service will cause your hard disk controller to execute"
- DATA " its internal diagnostic routines."
- DATA " "
- DATA " BsDaStat - This service detects if the diskette drive door has been opened"
- DATA " since the last disk operation. This service works only with"
- DATA " most 1.2Mb diskette drives."
- DATA " "
- DATA " BsDaType - This service tells you if the diskette drive is equipped"
- DATA " with change detection circuitry."
- DATA " "
- DATA " BsDASTyp - This service tells the diskette drive what kind of diskette"
- DATA " is loaded into the drive. It is used before all Format "
- DATA " and Verify requests."
- DATA " "
- DATA " BsDASeek - This service will cause the read/write heads to be "
- DATA " positioned over a particular track. It can be used to"
- DATA " park your drive."
- DATA "EOM"
-
-
-
-
- BsEqpmt.Msg:
- DATA 6
- DATA "The window displayed below shows the current equipment"
- DATA "configuration for this machine. The number of hard disks"
- DATA "may not always be correct due to compatibility problems."
- DATA "Press [Esc] to return to the menu."
- DATA "EOM"
-
- BsEqpmt.Txt:
- DATA 10
- DATA "ROM Revision Date ",1,1,0,0
- DATA "Conventional Memory ",2,1,0,0
- DATA "Extended Memory ",3,1,0,0
- DATA "Expanded Memory ",4,1,0,0
- DATA "Parallel Ports ",5,1,0,0
- DATA "Serial Ports ",6,1,0,0
- DATA "Floppy Drives ",7,1,0,0
- DATA "Game Ports ",8,1,0,0
- DATA "Hard Disks ",9,1,0,0
- DATA "EOM"
-
- BsPInit.Msg:
- DATA 6
- DATA "BsPInit will perform a printer initialization. As this screen"
- DATA "was being displayed you should have heard your printer being"
- DATA "reset - assuming, of course, that your printer was on-line and"
- DATA "connected to LPT1."
- DATA "EOM"
-
- BsPStat.Msg:
- DATA 5
- DATA "BsPStat will return the status of your printer. At the bottom",1,1,0,0
- DATA "of this window, I'm displaying the status of LPT1. You ",2,1,0,0
- DATA "can turn the printer on and off and see what it does to",3,1,0,0
- DATA "the display. Press [Esc] when you're finished.",4,1,0,0
- DATA "EOM"
-
- BsPrint.Msg:
- DATA 6
- DATA "BsPrint sends a string of characters to a printer."
- DATA "EOM"
-
- BsPrtSc.Msg:
- DATA 6
- DATA "This service simulates pressing the [PrtSc] key. Press",1,1,0,0
- DATA "[Esc] and we'll go back to the menu without printing. Any",2,1,0,0
- DATA "other key and I'll print this screen before going back to ",3,1,0,0
- DATA "the menu.",4,1,0,0
- DATA "EOM"
-
- DosPStat.Msg:
- DATA 7
- DATA "DosPStat reports the status of the print spooler.",1,1,0,0
- DATA "The current status of the spooler is shown below",2,1,0,0
- DATA " ",3,1,0,0
- DATA " Press any key to continue",4,1,0,0
- DATA "EOM"
-
- DosPCan.Msg:
- DATA 6
- DATA "DosPCan will cancel all jobs currently in the print queue.",1,1,0,0
- DATA "If you press [Esc], I will not cancel any jobs - any other",2,1,0,0
- DATA "key and I'll cancel all of them.",3,1,0,0
- DATA "EOM"
-
- DosPDel.Msg:
- DATA 6
- DATA "DosPDel will remove a file from the queue. Press [Esc] and"
- DATA "I'll display a list of files currently in the queue. To delete a"
- DATA "file, just move the bar over the filename and press [Enter]."
- DATA "When you have marked all files to delete, press [Esc]."
- DATA "EOM"
-
- DosPLst.Msg:
- DATA 6
- DATA "DosPLst will show all of the files currently in the print queue.",1,1,0,0
- DATA "Press any key and I'll display them.",2,1,0,0
- DATA "EOM"
-
- DosPSub.Msg:
- DATA 6
- DATA "DosPSub will submit a file to the spooler. Enter a file name",1,1,0,0
- DATA "and I'll submit it to the spooler for you. Remember, you ",2,1,0,0
- DATA "enter the entire file name including drive and path.",3,1,0,0
- DATA "EOM"
-
- FlFile.Msg:
- DATA 20
- DATA "This section of the demo contains only descriptive information."
- DATA "The file QBWARE.ARC, available through either Genie or CompuServe,"
- DATA "contains many samples using these routines. Source code for the"
- DATA "DEMO programs is provided to better understand how these services"
- DATA "work."
- DATA " "
- DATA " Press [Esc] to continue."
- DATA "EOM"
-
- FlGTim.Msg:
- DATA 6
- DATA "FlGTim allows you to retrieve the DOS timestamp for any file."
- DATA "EOM"
-
- FlGDat.Msg:
- DATA 6
- DATA "FlGDat allows you to retrieve a file's date of last update."
- DATA "EOM"
-
- FlGVol.Msg:
- DATA 6
- DATA "FlGVol allows you to retrieve the volume name for any diskette"
- DATA "or hard disk."
- DATA "EOM"
-
- FlPDat.Msg:
- DATA 6
- DATA "FlPDat allows you to change a file's date and time stamp."
- DATA "For a demonstration of this program, download the file"
- DATA "QBWARE.ARC from GENIE or CompuServe. The program FTIME.BAS"
- DATA "is a working program showing how to update all files in"
- DATA "a directory."
- DATA "EOM"
-
- FlPVol.Msg:
- DATA 6
- DATA "FlPVol allows you to change the volume name on any diskette"
- DATA "or hard disk."
- DATA "EOM"
-
- FlAttr.Msg:
- DATA 6
- DATA "FlAttr allows you to retrieve or set any file's attributes."
- DATA "EOM"
-
- FlOpen.Msg:
- DATA 6
- DATA "FlOpen allows you to open a file. You may specify the type of"
- DATA "access (i.e. read only, write only, etc.). For DOS 3.XX or"
- DATA "higher, you can specify sharing mode for multitasking"
- DATA "environments."
- DATA "EOM"
-
- FlClos.Msg:
- DATA 6
- DATA "FlClos simply closes a file that was opened using FlOpen."
- DATA "EOM"
-
- FlRead.Msg:
- DATA 6
- DATA "FlRead allows you to read a record from a file opened using"
- DATA "FlOpen."
- DATA "EOM"
-
- FlWrit.Msg:
- DATA 6
- DATA "FlWrit allows you to write a record to a file opened using"
- DATA "FlOpen."
- DATA "EOM"
-
- FlPoint.Msg:
- DATA 6
- DATA "FlPoint allows you to move the current record pointer in a file"
- DATA "opened using FlOpen. This facilitates random processing."
- DATA "EOM"
-
- FlCreat.Msg:
- DATA 20
- DATA "FlCreat allows you to create a file. Several options are"
- DATA "supported - including:"
- DATA " "
- DATA " - Create a file if the file name is not in use and if it"
- DATA " is in use, truncate (This is the QB default for OPEN)."
- DATA " "
- DATA " - Create a file if the file name is not in use and if it"
- DATA " is in use do nothing and provide a 'File already exists'"
- DATA " return code to the calling program"
- DATA " "
- DATA " - Create a file with a unique filename."
- DATA "EOM"
-
- FlDelete.Msg:
- DATA 6
- DATA "FlDelete deletes a file."
- DATA "EOM"
-
- FlRSect.Msg:
- DATA 6
- DATA "FlRSect reads an absolute sector from a diskette or hard disk."
- DATA "It is similar in function to BsDRead - the BIOS sector read,"
- DATA "however, internally, they are different."
- DATA "EOM"
-
- FlWSect.Msg:
- DATA 6
- DATA "FlWSect writes an absolute sector from a diskette or hard disk."
- DATA "It is similar in function to BsDWrit - the BIOS sector write,"
- DATA "however, internally, they are different."
- DATA "EOM"
-
- FlFind.Msg:
- DATA 6
- DATA "FlFind searches the current directory for a file. You provide"
- DATA "the FileSpec and this program returns an array of matches."
- DATA "DOS Wildcards can be used."
- DATA "EOM"
-
- FlCnt.Msg:
- DATA 6
- DATA "FlCnt can be used with FlFind. It returns the number of"
- DATA "files matching a FileSpec. Use this service before callind FlFind"
- DATA "so you can properly dimension the array used by FlFind."
- DATA "EOM"
-
- FlMove.Msg:
- DATA 6
- DATA "FlMove will move a file from one directory to another."
- DATA "This service will not let you move a file from one drive"
- DATA " to another. FlCopy must be used for that."
- DATA "EOM"
-
- FlCopy.Msg:
- DATA 6
- DATA "FlCopy will copy a file. It is similar in function to FlMove"
- DATA " but allows a file to be moved from one drive to another."
- DATA "EOM"
-
- FlSDrv.Msg:
- DATA 6
- DATA "FlSDrv allows you to set the current Drive."
- DATA "EOM"
-
- FlGDrv.Msg:
- DATA 6
- DATA "FlGDrv allows you to get the current Drive."
- DATA "EOM"
-
- FlCDir.Msg:
- DATA 6
- DATA "FlCDir allows you to change the current directory."
- DATA "EOM"
-
- FlGDir.Msg:
- DATA 6
- DATA "FlGDir allows you to get the current directory."
- DATA "EOM"
-
- FlMDir.Msg:
- DATA 6
- DATA "FlMDir allows you to make a directory. Of course, the directory"
- DATA "name cannot be already in use or this service will fail.
- DATA "EOM"
-
- FlDDir.Msg:
- DATA 6
- DATA "FlDDir allows you to delete a directory. The directory must"
- DATA "exist and be empty for this service to succeed."
- DATA "EOM"
-
- FlDStat.Msg:
- DATA 20
- DATA "FlDStat will provide you with various statistics about a diskette"
- DATA "or hard disk. Data retrieved is:"
- DATA " "
- DATA " Type of Drive"
- DATA " Bytes per sector"
- DATA " Sectors per cluster"
- DATA " Available clusters"
- DATA " Total Clusters"
- DATA " "
- DATA "Using this informatiuon, we can determine if we're using an"
- DATA "8 or 9 sector diskette, whether it's Single-Sided or Double-Sided,"
- DATA "if it's a hard disk, the amount of free space left on the disk "
- DATA "and more."
- DATA "EOM"
-
-
-
- DosAllcT.Msg:
- DATA 20
- DATA "This section of the demo contains only descriptive information."
- DATA "The file QBWARE.ARC, available through either Genie or CompuServe,"
- DATA "contains many samples using these routines. Source code for the"
- DATA "DEMO programs is provided to better understand how these services"
- DATA "work."
- DATA " "
- DATA " Press [Esc] to continue."
- DATA "EOM"
- DosMAllc.Msg:
- DATA 6
- DATA "DosMAllc will allocate up to 64K of additional string space"
- DATA "that can be used with the other functions explained in this section."
- DATA "EOM"
- DosMFree.Msg:
- DATA 6
- DATA "DosMFree will free the space acquired by DosMAllc."
- DATA "EOM"
- DosMGet.Msg:
- DATA 6
- DATA "DosMGet will retrieve a record from the area allocated by"
- DATA "DosMAllc. This record must have been placed there by "
- DATA "DosMPut."
- DATA "EOM"
- DosMPut.Msg:
- DATA 6
- DATA "DosMPut will place data into the area allocated by DosMAllc."
- DATA "This data can subsequently retrieved by DosMGet."
- DATA "EOM"
- Boot.Msg:
- DATA 6
- DATA "Boot does just what it says. It causes either a warm or cold boot"
- DATA "of the system."
- DATA "EOM"
- DosChOut.Msg:
- DATA 6
- DATA "DosChOut will write a string to the standard output device."
- DATA "It is designed primarily for video output, however, in can "
- DATA "be redirected easily."
- DATA "EOM"
- DosChrIn.Msg:
- DATA 6
- DATA "DosChrIn will read a character from the standard input device."
- DATA "It can optionally echo the charcater onto the standard output"
- DATA "device. This service was designed to work with a keyboard"
- DATA "and video monitor, however, they can both be redirected."
- DATA "EOM"
- DosStrIn.Msg:
- DATA 6
- DATA "DosStrIn will read a string from the standard input device."
- DATA "Anything read will automatically echo onto the standard"
- DATA "output device. This function can be redirected."
- DATA "EOM"
- DosRed.Msg:
- DATA 6
- DATA "DosRed allows you to close one of the DOS standard handles"
- DATA "or redirect it from within your program."
- DATA "EOM"
- DosPrSc.Msg:
- DATA 6
- DATA "DosPrSc will cause the contents of the video buffer to be"
- DATA "sent to LPT1."
- DATA "EOM"
- DosVer.Msg:
- DATA 6
- DATA "DosVer will provide the DOS version that we're running under."
- DATA "EOM"
- DosVrfy.Msg:
- DATA 6
- DATA "BsDVrfy will turn verify mode on or off. Turning verify mode"
- DATA "on will cause the DOS to read a sector after a write is "
- DATA "performed. This ensures that each sector written will pass"
- DATA "the CRC check."
- DATA "EOM"
-
- StrFunc.Msg:
- DATA 50
- DATA "There are several string functions that allow to enhance"
- DATA "the string handling capabilities of BASIC. These are:"
- DATA " "
- DATA " Verify - Opposite of INSTR, it allows you to find"
- DATA " the first character in a string that is not"
- DATA " contained in the control string. Makes testing"
- DATA " a string for numerics simple and fast and allows"
- DATA " you to quickly find the first non-blank character"
- DATA " in a string - unlimited uses."
- DATA " "
- DATA " XVerify - This service is the same as Verify except that it"
- DATA " finds the last character."
- DATA " "
- DATA " CharXlat - This service emulates the Assembler XLAT instruction."
- DATA " "
- DATA " Translat - This service allows you to replace a given character"
- DATA " in a string with another."
- DATA ""
- DATA " Compress - Will eliminate leading and trailing blanks."
- DATA ""
- DATA " UpCase - Changes each character of the string to upper"
- DATA " case."
- DATA ""
- DATA " LoCase - Changes each character of the string to lower"
- DATA " case."
- DATA ""
- DATA " Proper - Changes a string to proper form - for example"
- DATA " JOHN D. SMITH would be changed to"
- DATA " John D. Smith."
- DATA ""
- DATA " HexStr - This service provides a displayable hexadecimal"
- DATA " representation of a string. This service is"
- DATA " demonstrated under BsDRead in the BIOS Disk"
- DATA " section of this demo."
- DATA ""
- 'DATA " Format - this service takes a number in any format and"
- 'DATA " converts it to a formatted string similar to "
- 'DATA " PRINT USING."
- DATA "EOM"
-
- SortFunc.Msg:
- DATA 20
- DATA "PESort is a sort routine - written in BASIC - that uses a"
- DATA "partition-exchange sort to sort arrays in memory. The"
- DATA "array can be sorted using the entire length of each member"
- DATA "of the array or any portion of it."
- DATA " "
- DATA "The partition-exchange gives excellent results for medium to"
- DATA "large arrays."
- DATA "EOM"
-
- DateFunc.Msg:
- DATA 50
- DATA "The date and time handling functions available provide a wide"
- DATA "variety of methods to display and manipulate dates. They are:"
- DATA ""
- DATA " DatePack - This service packs a date into a two-byte"
- DATA " field."
- DATA " "
- DATA " DateUnPk - Unpacks a date packed with DatePack."
- DATA " "
- DATA " GregTJul - Converts a Gregorian date to Julian date."
- DATA " Gregorian date has the format MM/DD/YY and"
- DATA " Julian date has the format YYDDD. Julian"
- DATA " date are better suited for arithmetic manipulations"
- DATA " and sorting."
- DATA " "
- DATA " JulTGreg - Converts a Julian date to Gregorian."
- DATA " "
- DATA " DaysDiff - Computes the difference, in days, between two dates."
- DATA " "
- DATA " WeekDay - Takes a date and tells you the day of the week."
- DATA ""
- DATA " Calendar - Displays a calendar on any part of the screen."
- DATA " "
- DATA " AddTime - Adds two times with the format HH:MM:SS together."
- DATA " "
- DATA " SubTime - Subtracts two times."
- DATA " "
- DATA " Time - These routines when used together can provide"
- DATA " Ticks complete timer services. Lapse time in seconds"
- DATA " BsGeTime or standard HH:MM:SS format can be provided with"
- DATA " accuracy to 1/18 of a second."
- DATA "EOM"
-
- MiscFunc.Msg:
- DATA 6
- DATA "This area is reserved for those services that don't fit anywhere"
- DATA "else. These are:"
- DATA ""
- DATA " Mod - Provide modulus for numbers greater than 32,767."
- DATA " "
- DATA "EOM"
-
- WinPrim.Msg:
- DATA 50
- DATA "These are the base functions for the windowing routines. They"
- DATA "provide the foundation for the rest of the modules."
- DATA ""
- DATA " PutLine - This program writes data to the video buffer. It allows"
- DATA " you to select one of three methods to write to the screen."
- DATA " either thru BIOS, directly to the video buffer, or"
- DATA " directly to the video buffer while waiting for"
- DATA " retrace. This allows maximum compatibility across"
- DATA " a variety of machines."
- DATA " "
- DATA " SaveScr - These routines allow you to save and restore sections"
- DATA " RestScr of the video buffer into a numeric array. They are "
- DATA " are designed to use dynamic arrays, thereby causing"
- DATA " little impact on total available string space."
- DATA " "
- DATA " InpWin - This routine accepts a character from the keyboard."
- DATA " and allows an automatic display of the status bar"
- DATA " at the bottom of your screen."
- DATA " "
- DATA " ColorLin - This routine allows you to color a line of text"
- DATA " without changing any of the text."
- DATA "EOM"
-
- WinHigh.Msg:
- DATA 50
- DATA "This window explains the higher level display window functions."
- DATA "They are:"
- DATA " "
- DATA " PutWind - Display a window on a section of the screen. This"
- DATA " service allows several options, including, single or"
- DATA " double line frames, shadows to provide a three-D"
- DATA " appearance, exploding windows, etc."
- DATA " "
- DATA " PushWin - These routines automatically save and restore sections"
- DATA " PopWin of the screen to an integer array."
- DATA " "
- DATA " InitWin - Initialize parameters defining the windowing environment."
- DATA " "
- DATA " DefWin - Define each window used."
- DATA " "
- DATA " CngWin - Change an indiviual window's definition."
- DATA " "
- DATA " MoveWin - What else! - Move a window to a different part of the"
- DATA " screen."
- DATA " "
- DATA " PopText - This service allows you to display a text array"
- DATA " of any size and display it in a window of any size."
- DATA " The window you a currently reading was created with"
- DATA " PopText. Note that all of the Arrow keys, [PgUp],"
- DATA " [PgDn], [Home], [End] and Tab keys allow you to"
- DATA " browse thru the window."
- DATA " "
- DATA " PopFText - This service takes a text array and places each"
- DATA " member of the array in a predefined location of the"
- DATA " window. All locations are defined relative to the"
- DATA " upper left corner of the window, so you can move the"
- DATA " window anywhere on the screen without affecting the"
- DATA " placement of the individual fields."
- DATA " "
- DATA " ColorWin - This routine allows you to color a window without"
- DATA " changing any of the text inside the window."
- DATA "EOM"
-
- WinInput.Msg:
- DATA 50
- DATA "These are the Input routines. All of the character input routines"
- DATA "operate in a similar manner. Several keys control cursor movement"
- DATA "for these routines. These are:"
- DATA " "
- DATA " [Home] - cursor to start of field"
- DATA " [End] - cursor to end of field"
- DATA " [UpArrow] - exit field"
- DATA " [DnArrow] - exit field"
- DATA " [RArrow] - cursor right"
- DATA " [LArrow] - cursor left"
- DATA " [BkSpace] - cursor left and destroy character"
- DATA " [Del] - delete the character at cursor and move"
- DATA " any characters right of the cursor 1 space"
- DATA " left."
- DATA " [Ins] - Toggle insert mode"
- DATA " "
- DATA "The routines themselves are:"
- DATA " "
- DATA " InChar - Input a string of characters. You can specify an"
- DATA " initial value and an input format (for example - "
- DATA " a format of 999-99-9999 could be used for social"
- DATA " security numbers the dashes would be displayed in"
- DATA " the correct places and the cursor would jump over"
- DATA " them - only numeric input would be accepted.)"
- DATA " This service also provides automatic translation"
- DATA " to upper or lower case and you can require only numeric"
- DATA " input to be accepted. These edits are performed on a"
- DATA " character-by-character basis, allowing maximum flexibility."
- DATA " "
- DATA " InDate - Accepts and edits a date."
- DATA " "
- DATA " InYes - Accepts and edits a Yes/No field"
- DATA " "
- DATA " InMF - Accepts and edits a Male/Female field"
- 'DATA " "
- 'DATA " InNum - Accepts and edits a numeric field. You can define the decimal"
- 'DATA " point anywhere within the field."
- DATA "EOM"
-
- WinMenus.Msg:
- DATA 50
- DATA "There are five types of menus available. Most of them have already"
- DATA "been demonstrated in this program. Many of the cursor control keys"
- DATA "function with the menus. This is a general description of bar control:"
- DATA " "
- DATA " [Home] - generally moves the bar to the first menu selection"
- DATA " [End] - generally moves the bar to the last menu selection"
- DATA " [DnArrow] - moves the bar down one item - it wraps at the bottom"
- DATA " of the menu"
- DATA " [UpArrow] - moves the bar up one item - it wraps at the top of"
- DATA " the menu"
- DATA " [RArrow] - same as [DnArrow]"
- DATA " [LArrow] - same as [UpArrow]"
- DATA " [Enter] - selects the item with the bar over it"
- DATA " [Esc] - leave the menu (except with pulldown menus)"
- DATA " A-Z - pressing a letter will cause the bar to move to the"
- DATA " NEXT item that starts with that letter."
- DATA " [PgUp] - move up one page (ScrlSlct only)"
- DATA " [PgDn] - move down one page (ScrlSlct only)"
- DATA " "
- DATA "The menu programs are:"
- DATA " "
- DATA " BarMenu - Provides a two-line bar menu. This type of menu is not"
- DATA " demonstrated in this program. It is suited for menus with"
- DATA " twelve-sixteen selections of short named items."
- DATA " "
- DATA " BarMenu1 - This is shown in the demo. It is the menu that appears"
- DATA " after you select the Disk routines under Bios in the"
- DATA " Pull-Down menu. "
- DATA " "
- DATA " BarMenu2 - This service provides a Lotus-like menu facility."
- DATA " Lotus is, of course, a trademark of Lotus Corp."
- DATA " "
- DATA " PullDown - This provides the pulldown menu at the top of this"
- DATA " screen. You used it to get here."
- DATA " "
- DATA " ScrlSlct - This is the most powerful of the menus. It will"
- DATA " accept an array of any size and allow you to select"
- DATA " any number of entries from it. It has extensive"
- DATA " cursor(or bar) control facilities to make it easy"
- DATA " to get to any page within the menu."
- DATA "EOM"
-
- AvailMsg:
- DATA 50
- DATA "I have tried to provide a detailed description of each service"
- DATA "in the windows that follow. Many of the services described here"
- DATA "have been demonstrated in this program - especially the windowing"
- DATA "routines."
- DATA " "
- DATA "As with our other products, we will continue to enhance and support"
- DATA "these routines for our registered owners. At this time, the"
- DATA "documentation for the windowing and miscellaneous routines are"
- DATA "not included in the shareware package."
- DATA " "
- DATA "These routines may be ordered directly from AJM Software. Please"
- DATA "see the file REGISTER.TXT for details."
- DATA " "
- DATA "Many of the window and miscellaneous function routines are"
- DATA "written in QuickBasic."
- DATA "EOM"
-
- ' These are the menu choices. The first item appears on the bar and the items
- ' below appear on the pulldown menu. Each column must have EXACTLY the same
- ' number of entries.
-
- MainMenu.Data:
- DATA "Bios", "File", "Dos", "Func", "Window", "Quit"
- DATA "KeyBoard", "File Attribute", "The Spooler", "String Functions", "Primitives", ""
- DATA "Video", "File Access", "Memory Mgmt", "Sort", "High Level Functions", ""
- DATA "Disk", "DOS Replacement", "Miscellaneous", "Date and Time", "Input Operations", ""
- DATA "Miscellaneous", "", "", "Miscellaneous", "Menu Types", ""
-
- END
-
-